home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 5 / Gold Medal Software - Volume 5 (Gold Medal) (1995).iso / drivers / sio140.arj / VMODEM.TXT < prev    next >
Text File  |  1994-12-08  |  35KB  |  852 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.                                         VMODEM
  27.                               Technical Reference Manual
  28.  
  29.  
  30.  
  31.                         Copyright (c) 1994 by Raymond L. Gwinn
  32.                                  12469 Cavalier Drive
  33.                               Woodbridge, Virginia 22192
  34.                                  All Rights Reserved
  35.  
  36.                                    December 8, 1994
  37.  
  38.  
  39.                                 CompuServe: 71154,575
  40.                              InterNet: p00321@psilink.com
  41.                                 Voice: 1-703-494-4673
  42.                                  FAX: 1-703-494-0595
  43.                          BBS: 1-703-494-0098 or 199.248.240.2
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                      INTRODUCTION
  61.  
  62.           The Virtual Modem is a concept that the author believes will
  63.           change the way serial data communications is done and thought of. 
  64.           It is going to bring the Internet alive more then ever before. 
  65.           Perhaps it will not be this implementation of a Virtual Modem,
  66.           but the concept will remain and be used for a long time.  The
  67.           concept of the Virtual Modem was born from the desire to make the
  68.           SIO support BBS available via Internet.  In only a few minutes, I
  69.           was convinced the Virtual Modem was a solution of a multitude of
  70.           problems that Internet access poses.
  71.  
  72.           The Virtual Modem removes most of the complexities and mysteries
  73.           of the Internet by allowing common, well understood, programs to
  74.           be used to access the Internet highway.  Users can use programs
  75.           like PmComm and TE/2 to download files from a BBS (across the
  76.           Internet) using common protocols like ZMODEM.  The dialing
  77.           directories of terminal programs can contain Internet addresses
  78.           instead of phone numbers for easy access to remote sites.
  79.  
  80.           BBS SysOps can simply declare one or more of their BBS's
  81.           communications ports as a Virtual Modem and users can then "dial"
  82.           in over the Internet and no BBS software changes should be
  83.           necessary.  Is your BBS ready for 20 million new users that can
  84.           access it without making a long distance call?  This Virtual
  85.           Modem implementation also included a Telnet server allowing most
  86.           anyone on Telnet to access your system.
  87.  
  88.           Users transferring large volumes of data across phone lines (like
  89.           FidoNet echomail) can now use the Internet highway instead. 
  90.           Again, software changes should be minimal, if any at all.
  91.  
  92.           Remote users of databases that needs frequent updating, like
  93.           Lotus Notes, can use the Virtual Modem and Internet to keep their
  94.           systems current.
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.           ii
  103.  
  104.                                   TABLE OF CONTENTS
  105.  
  106.           WHAT IS VMODEM  . . . . . . . . . . . . . . . . . . . . . . .   1
  107.  
  108.           DISTRIBUTION, ORDERING AND SUPPORT  . . . . . . . . . . . . .   2
  109.                Distribution and Ordering  . . . . . . . . . . . . . . .   2
  110.                     SIO Distribution and Support BBS  . . . . . . . . .   2
  111.                Support  . . . . . . . . . . . . . . . . . . . . . . . .   2
  112.  
  113.           GETTING IT GOING  . . . . . . . . . . . . . . . . . . . . . .   5
  114.                TCP/IP Required  . . . . . . . . . . . . . . . . . . . .   5
  115.                     TCP/IP Sockets  . . . . . . . . . . . . . . . . . .   5
  116.                     The default port number . . . . . . . . . . . . . .   5
  117.  
  118.           The SIO.SYS command line  . . . . . . . . . . . . . . . . . .   5
  119.  
  120.           THE VIRTUAL MODEM . . . . . . . . . . . . . . . . . . . . . .   7
  121.                AT Commands Supported  . . . . . . . . . . . . . . . . .   7
  122.                S Registers Supported  . . . . . . . . . . . . . . . . .   8
  123.                Result Codes . . . . . . . . . . . . . . . . . . . . . .   8
  124.                     NO CARRIER  . . . . . . . . . . . . . . . . . . . .   8
  125.                     NO DIALTONE . . . . . . . . . . . . . . . . . . . .   8
  126.                       . . . . . . . . . . . . . . . . . . . . . . . . .   8
  127.                     BUSY  . . . . . . . . . . . . . . . . . . . . . . .   8
  128.                     CONNECT 57600/ARQ/VMP . . . . . . . . . . . . . . .   8
  129.                     RING  . . . . . . . . . . . . . . . . . . . . . . .   8
  130.                     RINGING . . . . . . . . . . . . . . . . . . . . . .   8
  131.                Caveats  . . . . . . . . . . . . . . . . . . . . . . . .   9
  132.                Dialing Examples . . . . . . . . . . . . . . . . . . . .   9
  133.  
  134.           Telnet  . . . . . . . . . . . . . . . . . . . . . . . . . .    11
  135.                IBM's Telnet Client  . . . . . . . . . . . . . . . . .    11
  136.  
  137.           THE VIRTUAL MODEM PROTOCOL  . . . . . . . . . . . . . . . .    12
  138.  
  139.           Development and Debugging Tools . . . . . . . . . . . . . .    13
  140.                The Poor Man's Line Monitor (PMLM.EXE) . . . . . . . .    13
  141.                VIEWPMLM.EXE . . . . . . . . . . . . . . . . . . . . .    14
  142.                SIO's Utility (SU.EXE) . . . . . . . . . . . . . . . .    14
  143.                     IRQs that currently free for use  . . . . . . . .    14
  144.  
  145.           Appendix A, Hardware Port and IRQ Assignments . . . . . . .    15
  146.                Addresses and IRQs for COM1 and COM2 . . . . . . . . .    15
  147.                Defacto standard for COM3 and COM4 . . . . . . . . . .    15
  148.                Addresses and IRQ for COM3 through COM8 on the PS/2  .    15
  149.  
  150.           Index . . . . . . . . . . . . . . . . . . . . . . . . . . .    16
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.                                                                           1
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.                                     WHAT IS VMODEM
  168.  
  169.           VMODEM is a software implementation of a modem, referred to as a
  170.           Virtual Modem.  Basically, it attempts to fake out other software
  171.           (like terminal programs) into believing they are accessing a real
  172.           modem.
  173.  
  174.           Normal (real) modems provide an interface that allows terminal
  175.           programs to pass digital information across telephone lines. 
  176.           VMODEM does the same thing from the application (terminal)
  177.           program's point of view.  However, the other side of VMODEM is
  178.           not a phone line, but a digital network like Internet.  Thus,
  179.           VMODEM allows the hoards of communications programs to pass
  180.           information across Internet instead of using phone lines.
  181.  
  182.           In addition to acting as a Telnet server, VMODEM uses a newly
  183.           designed protocol for communications networks, called the Virtual
  184.           Modem Protocol (VMP).  At this time, no other programs have
  185.           implemented VMP, thus VMODEM is required on both ends of the
  186.           connection to use the VMP.   However, VMODEM.EXE will accept
  187.           inbound Telnet connections from any system, meaning a BBS under
  188.           vmodem can be accessed by just about anyone with an Internet
  189.           connection.
  190.  
  191.           Future implementations of VMODEM may access networks other than
  192.           Internet and use TCP/IP implementations other than IBM's.  The
  193.           current implementation of VMODEM works only on Internet, using
  194.           the Internet Access Kit (IAK) that is included with OS/2 V3 and
  195.           IBM's TCP/IP (for OS/2) version 2.0, with the August 1994 CSD
  196.           applied.
  197.  
  198.           VMODEM also includes a Telnet server.  See the section on Telnet
  199.           for additional information.
  200.  
  201.           A single invocation of VMODEM can service all of the Internet
  202.           ports defined in the SIO command line.
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.           2
  211.  
  212.                           DISTRIBUTION, ORDERING AND SUPPORT
  213.  
  214.           Distribution and Ordering
  215.  
  216.           VMODEM is a part of a larger package collectively known as SIO. 
  217.           The entire package collectively known as SIO is ShareWare.  It is
  218.           not free software or freeware.  See LICENSE.TXT and ORDER.TXT for
  219.           additional information.  The ShareWare version of SIO is
  220.           distributed electronically.  One may check their favorite
  221.           electronic hangout for the latest version of SIO.  The latest
  222.           copy of the ShareWare version is always posted for downloading
  223.           from the BBS at 1-703-494-0098 or 199.248.240.2.  ShareWare
  224.           versions of SIO can also be downloaded from the CompuServe Forum
  225.           OS2BVEN, library 4.
  226.  
  227.           Registered versions of SIO are distributed by US Mail and
  228.           electronically from the SIO Distribution and Support BBS.  Users
  229.           desiring to register electronically, may call the BBS and
  230.           register on line (1-703-494-0098 or 199.248.240.2) and
  231.           immediately download their registered version of SIO.  Use the
  232.           ORDER command at the main BBS prompt.
  233.  
  234.           Registrations/Orders can also be placed by phone, mail, FAX, and
  235.           email.  See the front cover of this manual for the phone numbers
  236.           and addresses.  Also see ORDER.TXT for and order form that may be
  237.           used.
  238.  
  239.           Support
  240.  
  241.           Only product support is provided, user support for VMODEM is NOT
  242.           provided.  That is, help with application program configuration,
  243.           modem init strings etc, is not provided.
  244.  
  245.           Product information such as bug reports, suggestions, and
  246.           information about incompatibilities are welcome.  They should be
  247.           sent to one of the following addresses.
  248.  
  249.  
  250.                                         Email
  251.                                  CompuServe 71154,575
  252.                              Internet p00321@psilink.com
  253.                                   FAX 1-703-494-0595
  254.                          BBS 1-703-494-0098 or 199.248.240.2
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.                                                                           3
  263.  
  264.                                      QUICK START
  265.  
  266.  
  267.           This beta is intended to iron out problems in the Virtual Modem
  268.           Protocol (VMP) and the virtual modem implementation prior to
  269.           release.  I am interested in bug reports and welcome suggestions
  270.           about VMODEM such as "the ATDT command does not work" or "the
  271.           virtual modes responds too fast" or "ring indicator is not
  272.           working".
  273.  
  274.           If some of your applications do not work, it is probably due to
  275.           the timing difference between the virtual modem and real modems. 
  276.           These type of problems are NOT bugs in VMODEM, but in the
  277.           application itself and should be reported to the support
  278.           department for the application program.  Thus, messages saying
  279.           that application XYZ does not work are probably of no value and
  280.           may be ignored.
  281.  
  282.           The Good Stuff Starts Here:
  283.  
  284.           If you do not have TCP/IP up and running on your system, forget
  285.           it, there is no quick start.  If TCP/IP is running on your system
  286.           then read on.
  287.  
  288.           Users of the IBM Internet Access Kit (IAK) and IBM's SLIP be sure
  289.           to add MODE COMn DTR=ON somewhere before you attempt to dial in.
  290.  
  291.           First, you must define one or more Virtual Modem ports in the
  292.           SIO.SYS command line and reboot.  Defining a Virtual Modem port
  293.           simply requires that you use the word "Internet" instead of the
  294.           I/O port address in the SIO command line.  Do not forget to
  295.           assign the DOS reflection stuff if you will use the port from DOS
  296.           sessions.  An SIO command line example using COM2 as a Virtual
  297.           Modem is:
  298.  
  299.           DEVICE=SIO (COM1,3F8,4) (COM2,INTERNET:2F8,NONE:3)
  300.  
  301.           The ":2F8" and the ":3" in the command line tells SIO to reflect
  302.           data to DOS sessions on virtual I/O port 2F8 and virtual IRQ3. 
  303.           The "NONE" in the command line indicates that no real IRQ is
  304.           used.
  305.  
  306.           After you have made the SIO command line changes, and rebooted,
  307.           you must first activate TCP/IP.  Users of the IBM Internet Access
  308.           Kit must initiate a connection attempt before VMODEM will start. 
  309.           After TCP/IP is activated, type VMODEM at any OS/2 prompt.  The
  310.           VMODEM display attempts to simulate a modem display.  An activity
  311.           log will start at the bottom of the display and scroll up to the
  312.           bottom of the simulated LED display.  If you wish, you can use
  313.           "START /min VMODEM" to invoke VMODEM in your TCP/IP start up
  314.           scripts.  Hit Control C if you wish to terminate VMODEM, but you
  315.           must leave it running if you want Virtual Modem support.
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.           4
  324.  
  325.  
  326.           Once VMODEM is started, any access to COM2 (in this example) will
  327.           go out over the Internet.  Bring up your favorite terminal
  328.           program, configured for COM2, and type "AT?" for a list of
  329.           supported AT commands.  To dial out, type ATDT inetaddr.com, of
  330.           course you must use a real Internet address.
  331.  
  332.           As of this writing, there are several BBSs available for incoming
  333.           calls using VMODEM.  Their Internet addresses are:
  334.  
  335.           199.248.240.2             SIO Support in Virginia
  336.           199.100.191.2             Bob Juge in Houston Texas
  337.           199.67.41.2               PCBOARD, Clark Development
  338.           198.68.17.57              Paul Breedlove, Multinet
  339.           199.3.36.205              Steve Schmidt in Chicago Illinois
  340.           198.96.20.209             Steven Bonisteel in Canada
  341.           194.70.36.10              Jon Morby in England
  342.           198.17.249.111            Pete Link in USA
  343.           199.165.149.4             Pete Person in Washington State
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.                                                                           5
  352.  
  353.                                    GETTING IT GOING
  354.  
  355.  
  356.                                    TCP/IP Required
  357.  
  358.           The current (first) implementation of VMODEM and works only with
  359.           the Internet Access Kit (IAK) that is included with OS/2 V3 and
  360.           IBM's TCP/IP V2.0 with the August 1994 CSD applied.  Contact IBM
  361.           for information about obtaining their TCP/IP and the CSD update.
  362.  
  363.           Prior to executing VMODEM, you should have TCP/IP installed and
  364.           operational on your system.  The author is far from an Internet
  365.           or TCP/IP expert (more like a novice) so you are on your own in
  366.           getting TCP/IP up on your system.
  367.  
  368.           Users of the IBM Internet Access Kit (IAK) and IBM's SLIP be sure
  369.           to add MODE COMn DTR=ON somewhere before you attempt to dial in.
  370.  
  371.           The Virtual Modem Protocol (VMP) that is implemented by VMODEM
  372.           uses TCP/IP Sockets.  The default port number used by VMODEM is
  373.           3141 (the first 4 digits of pi, unrounded).  However, this
  374.           default port number can be overridden by using the SERVICES file
  375.           in the TCP/IP ETC directory.  If the user defines a "Well Known
  376.           Port" called "vmodem" (lower case) in the SERVICES file, then
  377.           that port will be used instead of 3141.  The port number 3141 has
  378.           been assigned to the Virtual Modem Protocal (VMP) by the Internet
  379.           Assigned Numbers Authority (IANA).  The name associated with port
  380.           3141 is "vmodem" (without the quotes).
  381.  
  382.                                The SIO.SYS command line
  383.  
  384.           If you do not already know what SIO.SYS is, you should start with
  385.           the SIO Users Manual which should be a part of the same package
  386.           that contained this manual.
  387.  
  388.           The changes to the SIO command line to define a Virtual Modem
  389.           Port(s) is simple.  All one does is to replace the I/O port
  390.           number with the word "Internet" (without the quote marks).  I/O
  391.           port number are usually hexadecimal numbers like 3F8 (for COM1)
  392.           and it is this number that is replaced with the word "Internet". 
  393.           A command line example for a Virtual Modem on COM2 that will only
  394.           be accessed by native OS/2 programs is as follows:
  395.  
  396.           DEVICE=SIO.SYS (COM1) (COM2,INTERNET,NONE)
  397.  
  398.           The "NONE" in the above simply states that no IRQ is being used.
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.           6
  407.  
  408.  
  409.           If one wishes to access the Virtual Modem from DOS and/or Windows
  410.           sessions, the command line is a little more complicated.  You
  411.           must inform SIO where to present the information to the
  412.           DOS/Windows session.  That is, you must tell SIO (really VSIO)
  413.           the virtual I/O port number and the virtual IRQ that the
  414.           DOS/Windows application uses to access the port.  Continuing to
  415.           use COM2 as the example should be changed to:
  416.  
  417.           DEVICE=SIO.SYS (COM1) (COM2,INTERNET:2F8,NONE:3)
  418.  
  419.           This command line will present a standard COM2 to the DOS and or
  420.           Windows session(s).
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.                                                                           7
  429.  
  430.                                   THE VIRTUAL MODEM
  431.  
  432.           Starting the Virtual Modem is about as simple as it can be. 
  433.           Simply type VMODEM or DETACH VMODEM at any OS/2 prompt, there are
  434.           no command line parameters.  VMODEM then just sits there and
  435.           displays some minimal activity reports.  If you do not wish to
  436.           observe the VMODEM screen, use the command line DETACH VMODEM and
  437.           execution will be completely in the background.
  438.  
  439.           Once started, and with the above mentioned additions to the SIO
  440.           command line, application programs should see a relatively simple
  441.           modem that implements a very basic set of AT commands.  Most of
  442.           the AT commands of a real modem simply do not apply in the
  443.           environment that the Virtual Modem is being used in.  For
  444.           example, flow control is automatic (done by TCP/IP) so the
  445.           virtual modem needs no flow control commands.
  446.  
  447.           Remember, the Virtual Modem has no memory, so any needed modem
  448.           init string needs to be presented each time an application
  449.           program is executed.
  450.  
  451.           AT Commands Supported
  452.  
  453.                ?    Display a list of supported AT commands.
  454.  
  455.                DT   Dial the following internet address.
  456.  
  457.                En   Command mode local echo. E0 disables echoing, E1
  458.                enables echoing.
  459.  
  460.                Fn   Local echo after connection. F0 enables (half duplex),
  461.                and F1 disables.  This command is currently disabled.
  462.  
  463.                Hn   On/Off hook control. H0 or H alone to hang up, H1 go
  464.                off hook.
  465.  
  466.                Sr=n Set S register r to n.  The supported set of S
  467.                registers is given below.
  468.  
  469.                Sr=? Display the current value (setting) of S register r.
  470.  
  471.                S?   Display supported S register information.
  472.  
  473.                Z    Virtual modem reset.
  474.  
  475.                &Cn  Carrier detect operation, &C0 always on, &C1 normal.
  476.  
  477.                &Sn  DSR operation, &S0 always on, &S1 normal.
  478.  
  479.                &V   View virtual modem settings.
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.           8
  488.  
  489.  
  490.           S Registers Supported
  491.  
  492.                S0   Zero disables automatic answer, non-zero enables
  493.                automatic answer.
  494.  
  495.                S7   Number of seconds to wait for carrier (connection) when
  496.                dialing.
  497.  
  498.                S19  Set inactivity timer (automatic disconnect) in minutes
  499.                (0 disables).  This S register is currently ignored by
  500.                VMODEM.
  501.  
  502.                S38  Duration in seconds before disconnect when DTR drops. 
  503.                This S register is currently ignored by VMODEM.
  504.  
  505.  
  506.           Result Codes
  507.  
  508.                NO CARRIER.  This result is returned when a dialing timeout
  509.                occurs or when an established connection terminates.  The
  510.                timeout interval is specified by S register 7.
  511.  
  512.                NO DIALTONE.  This result code means that VMODEM could not
  513.                obtain address information from the name server (or HOSTS
  514.                file), or that the given Internet address is invalid.  This
  515.                result code is also returned if TCP/IP is not responding.
  516.  
  517.                BUSY.  This result means that a connection to the vmodem
  518.                port was established at the remote site.  However, no
  519.                available communications ports (COM1, COM2 etc) were
  520.                available to assign the connection to.
  521.  
  522.                CONNECT 57600/ARQ/VMP.  This result means the dialing and
  523.                session establishment occurred without problems and is ready
  524.                for user data flow.  The given bit rate of 57600 is given
  525.                only to satisfy the application program.  The actual data
  526.                rate is not know to VMODEM.
  527.  
  528.                RING.  This result means that an incoming connection has
  529.                been made with a remote system and that the local VMODEM is
  530.                sending a ring indication to the assigned communications
  531.                port (COM1 etc).
  532.  
  533.                RINGING.  This result means that an outgoing connection has
  534.                been made with a remote system and that the remote VMODEM is
  535.                sending a ring indication to the communications port.
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.                                                                           9
  544.  
  545.  
  546.  
  547.           Caveats
  548.  
  549.           The command mode escape sequence, usually +++, is not implemented
  550.           by the Virtual Modem.  Once the Virtual Modem enters data mode,
  551.           the only way to return to command mode is to drop DTR.  This is
  552.           why the DTR override AT command is not supported.  Implementation
  553.           of the escape (+++) feature would have a severe impact on
  554.           processor overhead and Virtual Modem throughput.
  555.  
  556.           Numeric result codes are not currently implemented, they may be
  557.           at a future time.
  558.  
  559.           Some application programs (like ProComm) translate letters into
  560.           numbers. I have not found a way to use ProComm's dialing
  561.           directory to pass alphebetic strings like those used in Internet
  562.           addresses.
  563.  
  564.           Other applications (like TE/2) will pass alphabetic strings when
  565.           they are enclosed in double quotes.  Thus, an Internet address
  566.           can be entered into TE/2's dialing directories in the form
  567.           "vmbbs.xyz.com".  The trailing quote is not really necessary as a
  568.           trailing carriage return will also terminate the address.
  569.  
  570.           Dialing Examples
  571.  
  572.           Vmodem will translate any "*" (asterisk) in the dialing string to
  573.           a "." (dot).  Some terminal programs refuse to pass the dot, but
  574.           should pass the asterisk because it is a valid dialing digit.
  575.  
  576.           The following are a few dialing examples to numeric type internet
  577.           internet addresses.
  578.  
  579.  
  580.           ATDT199.100.191.2              Bob Juge in Houston Texas
  581.           ATDT 199.67.41.2               PCBOARD, Clark Development
  582.           ATDT 199*3*36*205              Steve Schmidt in Chicago Illinois
  583.           atdt198.96.20.209              Steven Bonisteel in Canada
  584.           ATDT194*70*36*10               Jon Morby in England
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.           10
  593.  
  594.  
  595.           The following are a few dialing examples to non-existent internet
  596.           addresses using host hames.  At least I believe they do not
  597.           exist.
  598.  
  599.           ATDT vmbbs.gwinn.com
  600.  
  601.           ATDTvmbbs.internet.com
  602.  
  603.           ATDP "BBS.INTERNET.COM"
  604.  
  605.           ATDT VMBBS.INTERNET.COM
  606.  
  607.           ATDT vmbbs.internet.com 1234
  608.  
  609.           In the above example, the user is specifying a port override. 
  610.           Normally VMODEM will attempt a connect on port 3141 (the official
  611.           port for vmodem).  In this case, the dialer is telling VMODEM to
  612.           use port 1234 instead of 3141.
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.                                                                          11
  621.  
  622.                                         Telnet
  623.  
  624.           VMODEM implements a Telent server meaning that inbound Telent
  625.           connections are accepted.  The "well know name" for the Telnet
  626.           server is VMOTelnet.  The default port is the standard Telnet
  627.           port, 23.  The port used by the Telnet server can be changed by
  628.           adding a line to the SERVICES file in your ETC and assigning
  629.           VMOTelent to another port.  This can also be done to disable the
  630.           Telnet server part of VMODEM.
  631.  
  632.           IBM's Telnet Client
  633.  
  634.           IBM's Telnet seems to be a little finicky, but I did get it to
  635.           connect and work with a VMODEM host.  I executed IBM's Telnet
  636.           with the following command line:
  637.  
  638.                     telnet -t ANSI -c NONE
  639.  
  640.           In addition, after Telent loads I had to enter the following:
  641.  
  642.                     toggle crlf
  643.  
  644.           BE SURE TO ENTER THE ABOVE COMMAND AFTER EXECUTING IBM'S TELENT. 
  645.           Things are really screwy if you do not.
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.           12
  654.  
  655.                               THE VIRTUAL MODEM PROTOCOL
  656.  
  657.  
  658.  
  659.           The Virtual Modem Protocol (VMP) for Internet and other networks
  660.           was designed with simplicity and performance in mind.  Existing
  661.           Internet protocols like TELNET were looked at, but found
  662.           inhibiting, or downright unusable for the Virtual Modem
  663.           implementation.  The VMP is a bit over designed for the current
  664.           implementation but is done so to allow for future expansion.  I
  665.           hope I have not re-invented the wheel, but at least we are off
  666.           and running.
  667.  
  668.           The following specification is an attempt the define the VMP so
  669.           that developers on platforms other that OS/2 will consider
  670.           implementing the VMP.
  671.  
  672.  
  673.  
  674.  
  675.                        More to come when the protocol firms up.
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.                                                                          13
  684.  
  685.                            Development and Debugging Tools
  686.  
  687.           The Poor Man's Line Monitor (PMLM.EXE)
  688.  
  689.           PMLM is basically of interest to developers of comm applications
  690.           and those providing technical support for those applications. 
  691.           This SIO utility is released largely (in self defense) in the
  692.           hope that some users can diagnose their own problems.  PMLM's
  693.           feature of saving trace information to disk will only work with
  694.           registered and beta versions of SIO.
  695.  
  696.           PMLM provides basic line monitoring for OS/2, DOS and Windows
  697.           comm programs.  All characters sent or received by application
  698.           programs are displayed in the upper portion of the screen. 
  699.           Receive characters are displayed as "white on blue" and
  700.           transmitted characters are displayed "yellow on violet".  Line
  701.           signals, such as CTS are displayed as "dim white on red" when
  702.           turned off and "bright white on red" when turned on.  In
  703.           addition, a signals transition to OFF is displayed in lower case
  704.           and a signals transition to ON is displayed in upper case.
  705.  
  706.           Status information is displayed in the lower part of the screen. 
  707.           A bright white display means the signal is on, a dim white
  708.           indicates that the signal is off.  In addition, when bright, 
  709.           Rxoff and Txoff indicate the SIO has sent (Txoff) or received
  710.           (Rxoff) an Xoff, and an Xon is pending.
  711.  
  712.           When a DOS or Windows session uses a comm port, an additional
  713.           line of signal status appears.  This status line shows the state
  714.           of the virtual UART's signals.  Only the signals which MAY be
  715.           different from the real UART's signals are shown.
  716.  
  717.           "Rx Chars" and "Tx Chars" reflects the number of characters in
  718.           SIO's receive and transmit buffers respectively.
  719.  
  720.           The last line on the screen shows the keys (from the keyboard)
  721.           that PMLM will recognize.  The bright character shows the key to
  722.           hit for the associated function.  The font keys will not work in
  723.           a windowed OS/2 session.
  724.  
  725.           PMLM's command line requires one parameter, the comm port number,
  726.           and optionally accepts an additional parameter giving a save
  727.           trace file name.  For example, PMLM 1 COM1INFO.TEC will monitor
  728.           COM1 and save ALL of the communications traffic in the file
  729.           COM1INFO.TRC.  The trace files created by PMLM contain exactly
  730.           the same information that is displayed by PMLM, video attributes
  731.           and all.
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.           14
  740.  
  741.  
  742.           VIEWPMLM.EXE may be used to view trace files created by PMLM. 
  743.           VIEWPMLM.EXE requires one parameter, the trace file name.  The
  744.           user can use the keys UP, DOWN, PAGEUP, PAGEDOWN, HOME, and END
  745.           to navigate the saved trace file.  Registered SIO users may send
  746.           VIEWPMLM.EXE (along with saved trace files) to anyone for
  747.           technical support purposes.
  748.  
  749.           VIEWPMLM can be used in native DOS, in DOS sessions under OS/2,
  750.           and in OS/2 sessions.  This means that even those developers and
  751.           support people need not have OS/2 to view the captured
  752.           communications data created by PMLM.
  753.  
  754.           SIO's Utility (SU.EXE)
  755.  
  756.           This utility program has several useful commands.  You can obtain
  757.           a list of the available commands by typing SU at any command line
  758.           prompt without any parameters.  One very useful command is SU
  759.           IRQS.  This command will show IRQs that currently free for use. 
  760.           Commands are provided allowing user control (missing from MODE)
  761.           are available.  Status commands provide a wealth of diagnostic
  762.           information.
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.                                                                          15
  771.  
  772.                     Appendix A, Hardware Port and IRQ Assignments
  773.  
  774.           I have obtained the following information from various sources. 
  775.           Accuracy is not guaranteed.  In fact, nothing in this document is
  776.           guaranteed.
  777.  
  778.           Addresses and IRQs for COM1 and COM2
  779.  
  780.                COM1 uses 03F8h and IRQ4
  781.                COM2 uses 02F8h and IRQ3
  782.  
  783.           Defacto standard for COM3 and COM4 for PC, XT and AT
  784.  
  785.                COM3 uses 03E8h and IRQ4
  786.                COM4 uses 02E8h and IRQ3
  787.  
  788.           Addresses and IRQ for COM3 through COM8 on the PS/2
  789.  
  790.                COM3 uses 3220h and IRQ3
  791.                COM4 uses 3228h and IRQ3
  792.                COM5 uses 4220h and IRQ3
  793.                COM6 uses 4228h and IRQ3
  794.                COM7 uses 5220h and IRQ3
  795.                COM8 uses 5228h and IRQ3
  796.  
  797.           All PCs (known to the author) prior to the PS/2 and EISA only use
  798.           10 bits to address hardware I/0 ports.  Systems prior to the PS/2
  799.           and EISA can not address the standard PS/2 addresses for COM3
  800.           through COM8.  If an AT or below attempts to address COM3 through
  801.           COM8 using the PS/2 addresses, only the low 10 bits of the
  802.           address are used.  That is, the high 6 bits of the address will
  803.           be ignored by the hardware.  This means that any reference to
  804.           COM3 through COM8 will actually address ports 220h through 22Fh
  805.           on older PCs.
  806.  
  807.           One should avoid expansion boards that use ports 220h through
  808.           22Fh unless the expansion board is a serial I/O board. 
  809.  
  810.           SIO will (attempt to) determine the hardware architecture
  811.           (ISA/EISA and PS/2) that it is being executed on and use the
  812.           appropriate hardware port addresses for COM1 thru COM4 as
  813.           defaults.
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.           16
  822.  
  823.                                         Index
  824.  
  825.           Addresses and IRQ for COM3 through COM8 on the PS/2 . . . . .  15
  826.           Addresses and IRQs for COM1 and COM2  . . . . . . . . . . . .  15
  827.           Appendix A, Hardware Notes  . . . . . . . . . . . . . . . . .  15
  828.           AT Commands Supported . . . . . . . . . . . . . . . . . . . . . 7
  829.           BBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  830.           Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
  831.           Defacto standard for COM3 and COM4  . . . . . . . . . . . . .  15
  832.           Default port number . . . . . . . . . . . . . . . . . . . . . . 5
  833.           Development and Debugging Tools . . . . . . . . . . . . . . .  13
  834.           Dialing Examples  . . . . . . . . . . . . . . . . . . . . . . . 9
  835.           Distribution  . . . . . . . . . . . . . . . . . . . . . . . . . 2
  836.           GETTING IT GOING  . . . . . . . . . . . . . . . . . . . . . . . 5
  837.           IBM's Telnet Client . . . . . . . . . . . . . . . . . . . . .  11
  838.           Ordering  . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  839.           PMLM.EXE  . . . . . . . . . . . . . . . . . . . . . . . . . .  13
  840.           Result Codes  . . . . . . . . . . . . . . . . . . . . . . . . . 8
  841.           S Registers Supported . . . . . . . . . . . . . . . . . . . . . 8
  842.           SIO's Utility (SU.EXE)  . . . . . . . . . . . . . . . . . . .  14
  843.           Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
  844.           TCP/IP Required . . . . . . . . . . . . . . . . . . . . . . . . 5
  845.           TCP/IP Sockets  . . . . . . . . . . . . . . . . . . . . . . . . 5
  846.           Telnet  . . . . . . . . . . . . . . . . . . . . . . . . . . .  11
  847.           The SIO.SYS command line  . . . . . . . . . . . . . . . . . . . 5
  848.           THE VIRTUAL MODEM . . . . . . . . . . . . . . . . . . . . . . . 7
  849.           VIEWPMLM.EXE  . . . . . . . . . . . . . . . . . . . . . . . .  14
  850.           VIRTUAL MODEM PROTOCOL  . . . . . . . . . . . . . . . . . . .  12
  851.           WHAT IS VMODEM  . . . . . . . . . . . . . . . . . . . . . . . . 1
  852.